Apache Ivy ডিপেনডেন্সি ম্যানেজমেন্ট টুল হিসেবে কাজ করে এবং এটি ivy.xml ফাইলের মাধ্যমে প্রকল্পের ডিপেনডেন্সি নির্ধারণ করে। এই ফাইলটি মূলত XML ফরম্যাটে লেখা হয় এবং এটি আপনার প্রোজেক্টের জন্য প্রয়োজনীয় লাইব্রেরি বা ডিপেনডেন্সি, তাদের ভার্সন, এবং রেপোজিটরি নির্ধারণ করে।
এই নিবন্ধে আমরা ivy.xml
ফাইলের গঠন এবং এর বিভিন্ন অংশ আলোচনা করব।
ivy.xml ফাইলের মধ্যে আপনার প্রোজেক্টের জন্য প্রয়োজনীয় সব ডিপেনডেন্সি, রেপোজিটরি, এবং অতিরিক্ত কনফিগারেশন সংজ্ঞায়িত করা হয়। নিচে ivy.xml
ফাইলের একটি মৌলিক গঠন দেওয়া হলো:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
<!-- প্রোজেক্টের তথ্য -->
<info organisation="com.example" module="myapp" revision="1.0.0"/>
<!-- ডিপেনডেন্সি তালিকা -->
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
<dependency org="junit" name="junit" rev="4.13.2"/>
</dependencies>
</ivy-module>
এখানে:
ivy-module
: এটি মূল উপাদান যা আপনার প্রোজেক্টের তথ্য ধারণ করে।info
: প্রোজেক্টের সংস্থা (organisation), মডিউল নাম (module), এবং ভার্সন (revision) সংজ্ঞায়িত করা হয়।dependencies
: এখানে আপনার প্রোজেক্টের জন্য প্রয়োজনীয় লাইব্রেরি এবং ডিপেনডেন্সিগুলি নির্ধারণ করা হয়।ivy.xml
ফাইলের প্রধান অংশগুলো হল:
ivy-module
:
উদাহরণ:
<ivy-module version="2.0">
<info organisation="com.example" module="myapp" revision="1.0.0"/>
</ivy-module>
info
:
organisation
: আপনার প্রোজেক্টের সংস্থা বা গ্রুপের নাম।module
: আপনার প্রোজেক্টের নাম।revision
: প্রোজেক্টের সংস্করণ।উদাহরণ:
<info organisation="com.example" module="myapp" revision="1.0.0"/>
dependencies
:
উদাহরণ:
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
<dependency org="junit" name="junit" rev="4.13.2"/>
</dependencies>
dependency
:org
: লাইব্রেরির বা ডিপেনডেন্সির সংগঠনের নাম।name
: লাইব্রেরি বা ডিপেনডেন্সির নাম।rev
: ডিপেনডেন্সির সংস্করণ (যেমন, 3.12.0, 4.13.2)।ivy.xml
ফাইলটি আরও কনফিগারেশন এবং কাস্টম সেটিংস ধারণ করতে পারে, যেমন ডিপেনডেন্সি রেজোলিউশন, রেপোজিটরি সেটিংস, এবং সাইট কনফিগারেশন।
compile
, runtime
, test
, ইত্যাদি।উদাহরণ:
<dependency org="org.apache.commons" name="commons-io" rev="2.8.0" conf="compile"/>
ivy.xml
ফাইলে আপনি কাস্টম রেপোজিটরি ব্যবহার করতে পারেন, যেখানে আপনি নির্দিষ্ট লাইব্রেরি বা প্যাকেজের জন্য রেপোজিটরি কনফিগার করবেন।উদাহরণ:
<repositories>
<ibiblio name="central" root="https://repo1.maven.org/maven2/" />
<filesystem name="local" basedir="lib"/>
</repositories>
উদাহরণ:
<dependency org="org.apache.commons" name="commons-lang3" rev="latest.integration"/>
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
<!-- Project Info -->
<info organisation="com.example" module="myapp" revision="1.0.0"/>
<!-- Repositories -->
<repositories>
<ibiblio name="central" root="https://repo1.maven.org/maven2/" />
<filesystem name="local" basedir="lib"/>
</repositories>
<!-- Dependencies -->
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
<dependency org="junit" name="junit" rev="4.13.2"/>
</dependencies>
<!-- Resolvers -->
<resolvers>
<ibiblio name="central" root="https://repo1.maven.org/maven2/"/>
<filesystem name="local" basedir="lib"/>
</resolvers>
<!-- Configuration for dependency resolution -->
<conflict-management>
<resolve strategy="latest"/>
</conflict-management>
</ivy-module>
এখানে:
repositories
: রেপোজিটরি গুলি যেখানে ডিপেনডেন্সি খুঁজে পাওয়া যাবে।dependencies
: ডিপেনডেন্সি গুলি যা আপনার প্রোজেক্টে অন্তর্ভুক্ত করা হবে।resolvers
: রেপোজিটরি রেজোলিউশনের কৌশল।conflict-management
: ভার্সন কনফ্লিক্ট ম্যানেজমেন্ট কনফিগারেশন।Ivy.xml ফাইলটি Apache Ivy টুলের মাধ্যমে প্রোজেক্টের ডিপেনডেন্সি ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এই ফাইলটি জাভা প্রকল্পে ব্যবহৃত লাইব্রেরি, তাদের সংস্করণ এবং রেপোজিটরি নির্ধারণ করে। Ivy আপনার প্রোজেক্টের ডিপেনডেন্সি স্বয়ংক্রিয়ভাবে রেজোলভ এবং ডাউনলোড করতে সহায়তা করে। ivy.xml ফাইলটি কাস্টমাইজ করা যায় এবং প্রোজেক্টের নির্দিষ্ট চাহিদা অনুযায়ী কনফিগার করা যায়।
common.read_more